package com.swpu.weiyu;

import java.util.List;
import java.util.Map;

/**
 * @author Wales Yu
 * <p>
 * 综合应用
 * <p>
 * 创建包：创建以自己名字为命名的包名 - 在 com.swpu 包/目录上 右键 New -> package
 * 创建类：在 以自己名字 为命名的 包/目录 上 右键 New -> Java Class
 */
public class Task1 {

    /**
     * 所有的代码都需要放在 主函数 中才能执行
     *
     * @param args 参数
     */
    public static void main(String[] args) {
        // 所有的类都是一张纸，要往这张纸上写数据/操作数据 就得让这张纸存在
        Task2 task2 = new Task2();

        // 具体的调用操作，无返回值、无参数的调用 - 0
        task2.test1();

        // 1. 整型、有返回值、没有参数 的方法调用
        var add = task2.addMethod();
        System.out.println("整型、有返回值、没有参数 的方法调用: " + add);

        // 1.1. 整型、有返回值、有参数 的方法调用
        var multi = task2.multiMethod(3);
        System.out.println("整型、有返回值、有参数 的方法调用: " + multi);

        // 2. 字符 - 有返回值、没有参数 的方法调用
        var string = task2.stringMethod();
        System.out.println("字符 - 有返回值、没有参数 的方法调用: " + string);

        // 2.1. 字符 - 有返回值、有参数 的方法调用
        var string2 = task2.stringMethod2(" String类型 ");
        System.out.println("字符 - 有返回值、有参数 的方法调用: " + string2);

        // 3. List - 有返回值、没有参数 的方法调用
        List<String> list = task2.listMethod();
        System.out.println("List - 有返回值、没有参数 的方法调用: " + list);

        // 3.1. List - 有返回值、有参数 的方法调用
        List<String> list1 = task2.listMethod2("List 类型");
        System.out.println("List - 有返回值、有参数 的方法调用: " + list1);

        // 4. Map - 有返回值、没有参数 的方法调用
        Map<String, Object> map = task2.mapMethod();
        System.out.println("Map - 有返回值、没有参数 的方法调用: " + map);

        // 4.1. Map - 有返回值、有参数 的方法调用
        Map<String, Object> map1 = task2.mapMethod2("Map 类型");
        System.out.println("Map - 有返回值、有参数 的方法调用: " + map1);

        // 5. Object - 有返回值、没有参数 的方法调用
        Object object = task2.objectMethod();
        System.out.println("Object - 有返回值、没有参数 的方法调用: " + object);

        // 5.1. Object - 有返回值、有参数 的方法调用
        Object object1 = task2.objectMethod2("Object 类型");
        System.out.println("Object - 有返回值、有参数 的方法调用: " + object1);
    }
}
